// var a = 100
// function create() {
//     var a = 200
//     return function () {
//         console.log(a);
//     }
// }
// var fn = create()
// fn()

// var a = 100
// function invoke(fn) {
//     var a = 200
//     fn()
// }
// function fn() {
//   console.log(a);
// }
// invoke(fn)

// const shape={
//     radius: 10,
//     diameter() {
//         return this.radius * 2
//     },
// perimeter: () => 2 * Math.PI * this.radius
// }
// console.log(shape.diameter())
// console.log(shape.perimeter())

// for (var i = 1; i <= 5; i++) {
//     setTimeout(function () {
//         console.log(i)
//     },0)
// }

setTimeout(() =>
    console.log(100)
)
console.log(200)
new Promise(() => {
    console.log(300)
    throw new Error()
}).then(()=> {
    console.log(400)
}). catch (()=> {
    console.log(500)
}).then(() => {
    console.log(600)
})